// C Source File
// Created 8/25/2009; 9:55:59 PM

#include "Crash.h"
#include "Game.h"

#ifdef HEAPTRACK
long int allocation = 0;
#endif

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ExitCiv ////////////////////////////////////////////////////////////////////////////////////////////////////////
// exits the game anfd frees all memory ///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void ExitCiv()
{
	FreeGameData();	
	exit(0);
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Crash //////////////////////////////////////////////////////////////////////////////////////////////////////////
// displays an error and exits ////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Crash(char i, const char *error)
{
	// Clear screen
	ClrScr();
	FontSetSys(F_4x6);
	
	// Show type of error
	switch(i)
	{
	case MEMORY:
		DrawStr(0, 40, "Error. Not enough memory for:", A_NORMAL);
		break;
	case MISSING_FILE:
		DrawStr(0, 40, "Error. Missing file:", A_NORMAL);
		break;
	case DIALOG:
		DrawStr(0, 40, "Error. Dialog problem:", A_NORMAL);
		break;
	default:
		DrawStr(0, 40, "Error. Unknown:", A_NORMAL);
		break;
	}
	
	// Display specifics
	DrawStr(5, 50, error, A_NORMAL);
	
	// Pause
	ngetchx();
	
	// Clear memory and exit
	ExitCiv();
}
